package com.example.demo.service;

import com.example.demo.dto.TaskDTO;
import com.example.demo.dto.VersionStatisticsDTO;
import com.example.demo.dto.DepStatisticsDTO;
import com.example.demo.dto.AppStatisticsDTO;
import com.example.demo.entity.Task;
import com.example.demo.request.CreateTaskRequest;
import java.util.List;

public interface TaskService {

    /**
     * 分页查询任务列表
     */
    List<TaskDTO> getTasks(int page, int size, String status, String application, String department);

    /**
     * 获取任务总数
     */
    long countTasks(String status, String application, String department);

    /**
     * 根据 ID 查询任务详情
     */
    TaskDTO getTaskById(Long id);

    /**
     * 创建新任务
     */
    Task createTask(CreateTaskRequest request);

    /**
     * 更新任务（可选）
     */
    void updateTask(Long id, CreateTaskRequest request);

    /**
     * 删除任务
     */
    void deleteTask(Long id);
    
    /**
     * 获取raw_data中version字段的统计信息
     */
    List<VersionStatisticsDTO> getVersionStatistics();
    
    /**
     * 获取raw_data中dep字段的统计信息
     */
    List<DepStatisticsDTO> getDepStatistics(String version);
    
    /**
     * 获取raw_data中app字段的统计信息
     */
    List<AppStatisticsDTO> getAppStatistics(String version, String department);
}